# -*- coding: utf-8 -*-  
# @Title     : ST3字体主题设置
# @Date      : 2014.4.20
# @Author    : aaron(583643865@qq.com)
# @Version   : V1.0

import re
import json

class PreferenceRead:

	# @data : 配置文件的路径，根据安装路径+"\\Data\\Packages\\User\\Preferences.sublime-settings"
	#配置文件读取模块，根据传入的配置文件路径，然后读取json处理。
	#然后根据传入的font，进行更改，然后就是保存
	def __init__(self,data):
		self.configfile=data

	#读取prefence文件（是一个json文件），然后返回字典对象
	def __readJson(self,path):
		f=open(self.configfile,'r')
		prefence=f.read()
		#根据json文件读取的字符串，然后生成python字典
		jsondata=json.loads(prefence)
		f.close()
		return jsondata

	# @path : 配置文件目录
	# @jsondata : jsondata是从文件读取的json生成的python字典
	#将这个字典文件写回到配置文件
	def __writeJson(self,path,jsondata):
		f=open(self.configfile,'w')
		#格式化json成字符串，然后写入文件
		f.write(json.dumps(jsondata,sort_keys=True,indent=4))
		f.close()


	#设置字体
	def setFont(self,font):
		jsondata=self.__readJson(self.configfile)

		jsondata["font_face"]=font["font_face"]
		jsondata["font_size"]=font["font_size"]
		
		self.__writeJson(self.configfile,jsondata)

	#获取当前主题
	def getCurrentTheme(self):
		jsondata=self.__readJson(self.configfile)
		theme=jsondata["color_scheme"]
		return theme

	#根据参数，设置主题
	def setTheme(self,theme):
		jsondata=self.__readJson(self.configfile)

		jsondata["color_scheme"]=theme

		self.__writeJson(self.configfile,jsondata)


if __name__ == '__main__':
	font={"font_face":"aaron","font_size":100}
	fontSet=PreferenceRead("G:\\Preferences.sublime-settings")
	fontSet.setFont(font)